import { defineAsyncComponent } from "vue";

const moduleFiles = import.meta.glob("./**/*.vue", {
  eager: true,
});

const components = {};
const componentList = []; 


Object.entries(moduleFiles).forEach(([path, module]) => {
  // 从路径中提取组件名
  const componentName =
    path
      .split("/")
      .pop()
      ?.replace(/\.vue$/, "") || "";

  // 添加组件到列表
  components[componentName] = module.default 

  // 核心修改：动态提取组件props配置
  const defaultProps = {};
  if (module.default.props) {
    Object.entries(module.default.props).forEach(([propName, propConfig]) => {
      // 提取props的默认值
      defaultProps[propName] = 
        typeof propConfig.default === 'function' 
          ? propConfig.default() 
          : propConfig.default;
    });
  } 


  // 添加到组件列表（带元信息）
  componentList.push({
    name: componentName,
    component: module.default ,
    type: module.default.type || 0, 
    cname: module.default.cname || "",
    icon: module.default.icon || "",
    props: defaultProps,
  });
});

export { components, componentList };